package com.ruoyi.binance.mapper;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import com.ruoyi.binance.domain.BinanceMinK;
import org.apache.ibatis.annotations.Param;

/**
 * 分钟实时K线数据Mapper接口
 * 
 * @author zq
 * @date 2025-08-05
 */
public interface BinanceMinKMapper 
{
    /**
     * 查询分钟实时K线数据
     * 
     * @param code 分钟实时K线数据主键
     * @return 分钟实时K线数据
     */
    public BinanceMinK selectLastBinanceMinKByCode(String code);

    public BinanceMinK selectBinanceMinKByCodeAndTime(@Param("code")String code, @Param("time")String time);

    /**
     * 查询分钟实时K线数据列表
     * 
     * @param binanceMinK 分钟实时K线数据
     * @return 分钟实时K线数据集合
     */
    public List<BinanceMinK> selectBinanceMinKList(BinanceMinK binanceMinK);

    /**
     * 新增分钟实时K线数据
     * 
     * @param binanceMinK 分钟实时K线数据
     * @return 结果
     */
    public int insertBinanceMinK(BinanceMinK binanceMinK);

    /**
     * 修改分钟实时K线数据
     * 
     * @param binanceMinK 分钟实时K线数据
     * @return 结果
     */
    public int updateBinanceMinK(BinanceMinK binanceMinK);

    /**
     * 删除分钟实时K线数据
     * 
     * @param code 分钟实时K线数据主键
     * @return 结果
     */
    public int deleteBinanceMinKByCode(String code);

    /**
     * 批量删除分钟实时K线数据
     * 
     * @param codes 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteBinanceMinKByCodes(String[] codes);

    public BigDecimal selectMinAveragePrice(String code);

    public BigDecimal select15MinAveragePrice(String code);

    public BigDecimal select30MinAveragePrice(String code);

    public BigDecimal selectHourAveragePrice(String code);

    public BigDecimal selectMinsAveragePrice(@Param("code")String code, @Param("min") String min);

    public List<BinanceMinK> selectStockPriceMonitoringByTime(@Param("code")String code, @Param("startTime")String startTime, @Param("endTime")String endTime);
}
